package com.chuangsi.project.admin.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.TableName;
import javax.validation.constraints.*;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* <p>
* E签宝印章
* </p>
*
* @author ywb
* @since 2025-02-24
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_seal")
@ApiModel(value="Seal对象", description="E签宝印章")
    public class Seal extends Model<Seal> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "印章id")
    @TableId(value = "seal_id", type = IdType.ASSIGN_UUID)
    @NotBlank(message="印章id不能为空")
    private String sealId;

    @ApiModelProperty(value = "名称")
    @NotBlank(message="名称不能为空")
    private String sealName;

    @ApiModelProperty(value = "应用id")
    @NotBlank(message="应用id不能为空")
    private String appId;

    @ApiModelProperty(value = "应用密钥")
    @NotBlank(message="应用密钥不能为空")
    private String appSecret;

    @ApiModelProperty(value = "E签宝组织id")
    @NotBlank(message="E签宝组织id不能为空")
    private String orgId;

    @ApiModelProperty(value = "E签宝经办人id")
    @NotBlank(message="E签宝经办人id不能为空")
    private String psnId;

    @ApiModelProperty(value = "E签宝印章id")
    @NotBlank(message="E签宝印章id不能为空")
    private String esignSealId;

    @ApiModelProperty(value = "状态（Y:开启，N：关闭）")
    @NotBlank(message="状态（Y:开启，N：关闭）不能为空")
    private String status;

    @ApiModelProperty(value = "是否E签宝合同（Y:是 N:否）")
    @NotEmpty(message="是否E签宝合同不能为空")
    @Size(max=1,message="是否E签宝合同长度过长")
    private String esignContract;

    @ApiModelProperty(value = "线下支付开启状态（Y:开启，N：关闭）")
    @NotBlank(message="线下支付开启状态不能为空")
    private String offlineStatus;

    @ApiModelProperty(value = "线上支付开启状态（Y:开启，N：关闭）")
    @NotBlank(message="线上支付开启不能为空")
    private String onlineStatus;

    @ApiModelProperty(value = "公章地址")
    private String sealPic;

    @ApiModelProperty(value = "线下支付图片二维码")
    private String offlinePayPic;

    @ApiModelProperty(value = "商户号")
    private String mchId;

    @ApiModelProperty(value = "公钥ID")
    private String publicKeyId;

    @ApiModelProperty(value = "商户证书序列号")
    private String merchantSerialNumber;

    @ApiModelProperty(value = "APIv3密钥")
    private String apiV3Key;

    @ApiModelProperty(value = "公钥path")
    private String publicKeyPath;

    @ApiModelProperty(value = "密钥path")
    private String privateKeyPath;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;


    @Override
    protected Serializable pkVal() {
        return this.sealId;
    }

}
